﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

namespace ERPStore.Models
{
	/// <summary>
	/// Représente une offre sur un produit
	/// </summary>
	[DataContract]
	public class Offer
	{
		public Offer()
		{
			TriggerUrl = "/offre";
		}

		/// <summary>
		/// Nom unique de l'offre
		/// </summary>
		[DataMember]
		public string Name { get; set; }
		/// <summary>
		/// Date de début d'offre
		/// </summary>
		[DataMember]
		public DateTime? StartDate { get; set; }
		/// <summary>
		/// Date de fin d'offre
		/// </summary>
		[DataMember]
		public DateTime? EndDate { get; set; }

		/// <summary>
		/// Description longue
		/// </summary>
		[DataMember]
		public string Description { get; set; }
		/// <summary>
		/// Titre de la page web
		/// </summary>
		[DataMember]
		public string Title { get; set; }
		/// <summary>
		/// Tag css pour l'affichage des pictos et autres
		/// </summary>
		[DataMember]
		public string CSSTag { get; set; }
		/// <summary>
		/// Nom de la vue correspondante
		/// </summary>
		[DataMember]
		public string ViewName { get; set; }
		/// <summary>
		/// Nom de la vue du produit
		/// </summary>
		[DataMember]
		public string ProductViewName { get; set; }
		/// <summary>
		/// Lien de matching
		/// </summary>
		[DataMember]
		public string Link { get; set; }
		/// <summary>
		/// Stock obligatoire
		/// </summary>
		[DataMember]
		public bool PhysicalStockMandatory { get; set; }

		/// <summary>
		/// Identifiant de la catégorie
		/// </summary>
		[DataMember]
		public int? ProductCategoryId { get; set; }

		/// <summary>
		/// Nom de la categorie d'offre
		/// </summary>
		[DataMember] 
		public string Category { get; set; }

		/// <summary>
		/// Identifiant de la marque
		/// </summary>
		[DataMember]
		public int? BrandId { get; set; }

		[IgnoreDataMember]
		public string TriggerUrl { get; set; }
	}
}
